# Домашние задания по теме "Java"

## HomeWork_1

### **Задача 1**:
Вычислить n-ое треугольного число(сумма чисел от 1 до n), а так же n! (произведение чисел от 1 до n)

### **Задача 2**:
Вывести все простые числа от 1 до 1000

### **Задача 3**:
Реализовать простой калькулятор (+ - / *)

## HomeWork_2
### **Задача 1**:
Реализуйте алгоритм сортировки пузырьком числового массива (введён вами), результат после каждой итерации запишите в лог-файл.

### **Задача 2**:
Дана строка (получение через обычный текстовый файл!!!)

"фамилия":"Иванов","оценка":"5","предмет":"Математика"
"фамилия":"Петрова","оценка":"4","предмет":"Информатика"

Написать метод(ы), который распарсит строку и, используя StringBuilder, создаст строки вида:
Студент [фамилия] получил [оценка] по предмету [предмет].

Пример вывода:
Студент Иванов получил 5 по предмету Математика.
Студент Петрова получил 4 по предмету Информатика.
Студент Краснов получил 5 по предмету Физика.

### **Задача 3**:
Напишите метод, который принимает на вход строку (String) и определяет является ли строка палиндромом (возвращает boolean значение).

## HomeWork_3
### **Задача 1**:
Пусть дан произвольный список целых чисел, удалить из него четные числа

### **Задача 2**:
Задан целочисленный список ArrayList. Найти минимальное, максимальное и среднее ариф. из этого списка

## HomeWork_4
### **Задача 1**:
Пусть дан LinkedList с несколькими элементами. Реализуйте метод(не void), который вернет “перевернутый” список.

### **Задача 2**:
Реализуйте очередь с помощью LinkedList со следующими методами:

enqueue() - помещает элемент в конец очереди,

dequeue() - возвращает первый элемент из очереди и удаляет его,

first() - возвращает первый элемент из очереди, не удаляя.

### **Задача 3**:
В калькулятор добавьте возможность отменить последнюю операцию.

Пример

1
+
2

ответ: 3

'+'

4

ответ: 7

Отмена

3
*
3

ответ: 9

## HomeWork_5
### **Задача 1**:
Реализуйте структуру телефонной книги с помощью HashMap, учитывая, что 1 человек может иметь несколько телефонов.
Добавить функции 
1) Добавление номера
2) Вывод всего

### **Задача 2**:
Пусть дан список сотрудников:
Иван Иванов
Светлана Петрова
Кристина Белова
Анна Мусина
Анна Крутова
Иван Юрин
Петр Лыков
Павел Чернов
Петр Чернышов
Мария Федорова
Марина Светлова
Мария Савина
Мария Рыкова
Марина Лугова
Анна Владимирова
Иван Мечников
Петр Петин
Иван Ежов

### **Задача 3**:
На шахматной доске расставить 8 ферзей так, чтобы они не били друг друга. И вывести Доску. 

Пример вывода доски 8x8

0x000000

0000x000

00x00000


## HomeWork_5
### **Задача 1**:
Подумать над структурой класса Ноутбук для магазина техники - выделить поля и методы. Реализовать в java.
Создать множество ноутбуков.
Написать метод, который будет запрашивать у пользователя критерий фильтрации и выведет ноутбуки, отвечающие фильтру. Критерии фильтрации можно хранить в Map. 

минимум 5

 NoteBook notebook1 = new NoteBook 
 
 NoteBook notebook2 = new NoteBook 
 
 NoteBook notebook3 = new NoteBook 
 
 NoteBook notebook4 = new NoteBook 
 
 NoteBook notebook5 = new NoteBook

Например: “Введите цифру, соответствующую необходимому критерию:
1 - ОЗУ
2 - Объем ЖД
3 - Операционная система
4 - Цвет

Далее нужно запросить критерии - сохранить параметры фильтрации можно также в Map.

Отфильтровать ноутбуки из первоначального множества и вывести проходящие по условиям.

Класс сделать в отдельном файле

Пример: ----->

приветствие

Выбор параметра:

1 - ОЗУ

2 - Объем ЖД

3 - Операционная система

4 - Цвет

выбор конкретнее

1 ---> Введите колво ---> 16

вывод всех подходящих ноутбуков по параметру